The present invention relates to virtual-machine dynamic allocation systems and servers, and is applicable to, for example, a dynamic allocation system for a virtual machine that operates a program (e.g., application program) in a distributed network.
With recent developments in network technologies and computer technologies, there has been advancement in a so-called cloud computing technology.
Cloud computing involves setting general computer servers (referred to as “servers” hereinafter) in various stations, causing a server in the cloud to acquire input data from a client, causing the server to operate an application to be used by the client, and causing the server to return output data to the client via a communication environment.
A cloud environment is used by many users. Since the scale of a cloud environment is large, identical servers are set at many locations around the world. Therefore, which of the servers is to be used for performing application operation requested by a client varies depending on the situation. For example, a situation where a request from a client in Japan is transmitted to a server in Brazil, which is on the other side of the globe, and the server in Brazil sends back data to the client in Japan may possibly occur.
The internet-of-things (IoT) service is attracting attention today.
In the IoT service, many devices or things have a communication function and are connected to a network. When the IoT service is provided, applications have to have real-time properties and the amount of traffic in the network has to be increased. Also, a method of accumulating so-called big data is demanded.
For example, there is a service in which a server instantaneously performs an analysis based on detailed data from a sensor of a device provided in a factory. In this case, there is the problem that the service is not suitable for this use since the response time of an application is slow.
Furthermore, in the case of an application in which real-time properties are strongly desired, for example, in traffic control, such as a traffic light, or in a vehicle driving system, it is conceivable that a processing delay of about several hundreds of milliseconds could become fatal.
As a countermeasure against the problems described above, JP 2013-90277A proposes an edge computing technology in which small-scale slave servers (also called edge servers) are set at locations physically near users to shorten communication delays so that real-time properties of applications are achieved.
Edge computing is a type of a distributed network in which a slave server (edge server) intervening between a master server in the cloud and a client performs, for example, data storage and arithmetic processing.